
class elementBase:
    """单元的基类,用来规定一些必须实现的方法"""
    VTK_TYPE = "this is vtk type"
    elementType = "this is elemType's detail name"
    nodeVars=["here is node dof's var name",]
    SupportBCTypes=["here is support bc's type name",]
    SupportLoadTypes=["here is support load's type name",]
    def __init__(self, label:int,nodeDofNUM:int):
        self.label = label
        # 节点自由度数
        self.NodeDofNum=nodeDofNUM
        self.GaussPoints=()
        self.GaussWeights=()
    @property
    def get_connectivity(self):
        """返回单元的连接性"""
        raise NotImplementedError("get_connecticity method not implemented")
    @property
    def Ke(self):
        """返回单元的刚度矩阵"""
        raise NotImplementedError("Ke method not implemented")
    @property
    def Me(self):
        """返回单元的质量矩阵"""
        raise NotImplementedError("Me method not implemented")
    @property
    def D(self):
        """返回单元的变形矩阵"""
        raise NotImplementedError("D method not implemented")
    @property
    def dofNum(self):
        """返回单元的自由度数"""
        raise NotImplementedError("dofNum method not implemented")
    @property
    def NodesList(self):
        """返回节点对象列表"""
        raise NotImplementedError("NodesList method not implemented")
    @property
    def ElemDofIndexs(self):
        """单元自由度列表"""
        raise NotImplementedError("ElemDofIndexs method not implemented")
    def ProcessELoad2EqNodeForce(self,load):
        """将单元载荷转换为等效节点力"""
        raise NotImplementedError("ProcessLoad2EqNodeForce method not implemented")
